package com.ly.heart.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 物料计划属性信息对象 erp_material_plan_attribute
 *
 * @author wutao
 * @date 2024-07-04
 */
@TableName("erp_material_plan_attribute")
@ApiModel(value = "erp_material_plan_attribute对象", description = "物料计划属性信息")
@Data
public class MaterialPlanAttributeEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 物料计划属性/计划控制主键id
     */
    @TableId(type = IdType.INPUT)
    private String id;

    /**
     * 物料id
     */
    @ApiModelProperty("物料id")
    @TableField("material_id")
    @Excel(name = "物料id")
    private String materialId;

    /**
     * 计划策略
     */
    @ApiModelProperty("计划策略")
    @TableField("f_planning_strategy")
    @Excel(name = "计划策略")
    private String fPlanningStrategy;

    /**
     * 制造策略
     */
    @ApiModelProperty("制造策略")
    @TableField("f_mfg_policy_id")
    @Excel(name = "制造策略")
    private String fMfgPolicyId;

    /**
     * 订单策略
     */
    @ApiModelProperty("订单策略")
    @TableField("f_order_policy")
    @Excel(name = "订单策略")
    private String fOrderPolicy;

    /**
     * 计划区
     */
    @ApiModelProperty("计划区")
    @TableField("f_plan_workshop")
    @Excel(name = "计划区")
    private String fPlanWorkshop;

    /**
     * 固定提前期
     */
    @ApiModelProperty("固定提前期")
    @TableField("f_fix_lead_time")
    @Excel(name = "固定提前期")
    private Long fFixLeadTime;

    /**
     * 固定提前期单位
     */
    @ApiModelProperty("固定提前期单位")
    @TableField("f_fix_lead_time_type")
    @Excel(name = "固定提前期单位")
    private String fFixLeadTimeType;

    /**
     * 变动提前期
     */
    @ApiModelProperty("变动提前期")
    @TableField("f_var_lead_time")
    @Excel(name = "变动提前期")
    private Long fVarLeadTime;

    /**
     * 变动提前期单位
     */
    @ApiModelProperty("变动提前期单位")
    @TableField("f_var_lead_time_type")
    @Excel(name = "变动提前期单位")
    private String fVarLeadTimeType;

    /**
     * 检验提前期
     */
    @ApiModelProperty("检验提前期")
    @TableField("f_check_lead_time")
    @Excel(name = "检验提前期")
    private Long fCheckLeadTime;

    /**
     * 检验提前期单位
     */
    @ApiModelProperty("检验提前期单位")
    @TableField("f_check_lead_time_type")
    @Excel(name = "检验提前期单位")
    private String fCheckLeadTimeType;

    /**
     * 订货间隔期单位
     */
    @ApiModelProperty("订货间隔期单位")
    @TableField("f_order_interval_time_type")
    @Excel(name = "订货间隔期单位")
    private String fOrderIntervalTimeType;

    /**
     * 订货间隔期
     */
    @ApiModelProperty("订货间隔期")
    @TableField("f_order_interval_time")
    @Excel(name = "订货间隔期")
    private Long fOrderIntervalTime;

    /**
     * 最大订货量
     */
    @ApiModelProperty("最大订货量")
    @TableField("f_max_POQty")
    @Excel(name = "最大订货量")
    private Long fMaxPoqty;

    /**
     * 最大订货量单位
     */
    @ApiModelProperty("最大订货量单位")
    @TableField("_max_POQty_unit")
    @Excel(name = "最大订货量单位")
    private String MaxPoqtyUnit;

    /**
     * 最小订货量
     */
    @ApiModelProperty("最小订货量")
    @TableField("f_min_POQty")
    @Excel(name = "最小订货量")
    private Long fMinPoqty;

    /**
     * 最小订货量单位
     */
    @ApiModelProperty("最小订货量单位")
    @TableField("f_min_POQty_unit")
    @Excel(name = "最小订货量单位")
    private String fMinPoqtyUnit;

    /**
     * 最小包装量
     */
    @ApiModelProperty("最小包装量")
    @TableField("f_increase_qty")
    @Excel(name = "最小包装量")
    private Long fIncreaseQty;

    /**
     * 最小包装量单位
     */
    @ApiModelProperty("最小包装量单位")
    @TableField("f_increase_qty_unit")
    @Excel(name = "最小包装量单位")
    private String fIncreaseQtyUnit;

    /**
     * 固定/经济批量
     */
    @ApiModelProperty("固定/经济批量")
    @TableField("f_base_var_lead_time_lot_size")
    @Excel(name = "固定/经济批量")
    private String fBaseVarLeadTimeLotSize;

    /**
     * 固定/经济批量单位
     */
    @ApiModelProperty("固定/经济批量单位")
    @TableField("f_base_var_lead_time_lot_size_unit")
    @Excel(name = "固定/经济批量单位")
    private String fBaseVarLeadTimeLotSizeUnit;

    /**
     * 变动提前期批量
     */
    @ApiModelProperty("变动提前期批量")
    @TableField("f_var_lead_time_lot_size")
    @Excel(name = "变动提前期批量")
    private String fVarLeadTimeLotSize;

    /**
     * 变动提前期批量单位
     */
    @ApiModelProperty("变动提前期批量单位")
    @TableField("f_var_lead_time_lot_size_unit")
    @Excel(name = "变动提前期批量单位")
    private String fVarLeadTimeLotSizeUnit;

    /**
     * 拆分批量
     */
    @ApiModelProperty("拆分批量")
    @TableField("f_plan_batch_split_qty")
    @Excel(name = "拆分批量")
    private String fPlanBatchSplitQty;

    /**
     * 拆分批量单位
     */
    @ApiModelProperty("拆分批量单位")
    @TableField("f_plan_batch_split_qty_unit")
    @Excel(name = "拆分批量单位")
    private String fPlanBatchSplitQtyUnit;

    /**
     * 批量拆分间隔天数
     */
    @ApiModelProperty("批量拆分间隔天数")
    @TableField("f_plan_intervals_days")
    @Excel(name = "批量拆分间隔天数")
    private Long fPlanIntervalsDays;

    /**
     * 需求时界
     */
    @ApiModelProperty("需求时界")
    @TableField("f_request_time_zone")
    @Excel(name = "需求时界")
    private Long fRequestTimeZone;

    /**
     * 计划时界
     */
    @ApiModelProperty("计划时界")
    @TableField("f_plan_time_zone")
    @Excel(name = "计划时界")
    private Long fPlanTimeZone;

    /**
     * 计划组
     */
    @ApiModelProperty("计划组")
    @TableField("f_plan_group_id")
    @Excel(name = "计划组")
    private String fPlanGroupId;

    /**
     * 计划员
     */
    @ApiModelProperty("计划员")
    @TableField("f_planer_ID")
    @Excel(name = "计划员")
    private String fPlanerId;

    /**
     * 计划标识
     */
    @ApiModelProperty("计划标识")
    @TableField("f_plan_ident")
    @Excel(name = "计划标识")
    private String fPlanIdent;

    /**
     * 安全库存
     */
    @ApiModelProperty("安全库存")
    @TableField("f_plan_safe_stock_qty")
    @Excel(name = "安全库存")
    private Long fPlanSafeStockQty;

    /**
     * 安全库存单位
     */
    @ApiModelProperty("安全库存单位")
    @TableField("f_plan_safe_stock_qty_unit")
    @Excel(name = "安全库存单位")
    private String fPlanSafeStockQtyUnit;

    /**
     * 产品系列
     */
    @ApiModelProperty("产品系列")
    @TableField("f_product_line")
    @Excel(name = "产品系列")
    private String fProductLine;

    /**
     * 冲销数量
     */
    @ApiModelProperty("冲销数量")
    @TableField("f_write_off_qty")
    @Excel(name = "冲销数量")
    private String fWriteOffQty;

    /**
     * 冲销数量单位
     */
    @ApiModelProperty("冲销数量单位")
    @TableField("f_write_off_qty_unit")
    @Excel(name = "冲销数量单位")
    private String fWriteOffQtyUnit;

    /**
     * 允许提前天数
     */
    @ApiModelProperty("允许提前天数")
    @TableField("f_can_lead_days")
    @Excel(name = "允许提前天数")
    private Long fCanLeadDays;

    /**
     * 提前宽限期
     */
    @ApiModelProperty("提前宽限期")
    @TableField("f_lead_extend_day")
    @Excel(name = "提前宽限期")
    private Long fLeadExtendDay;

    /**
     * 允许延后天数
     */
    @ApiModelProperty("允许延后天数")
    @TableField("f_can_delay_days")
    @Excel(name = "允许延后天数")
    private Long fCanDelayDays;

    /**
     * 延后宽限期
     */
    @ApiModelProperty("延后宽限期")
    @TableField("f_delay_extend_day")
    @Excel(name = "延后宽限期")
    private Long fDelayExtendDay;

    /**
     * 预计入库允许部分延后(0否1是)
     */
    @ApiModelProperty("预计入库允许部分延后(0否1是)")
    @TableField("f_allow_part_delay")
    @Excel(name = "预计入库允许部分延后(0否1是)")
    private String fAllowPartDelay;

    /**
     * 时间单位
     */
    @ApiModelProperty("时间单位")
    @TableField("f_plan_offset_time_type")
    @Excel(name = "时间单位")
    private String fPlanOffsetTimeType;

    /**
     * 偏置时间
     */
    @ApiModelProperty("偏置时间")
    @TableField("f_plan_offset_time")
    @Excel(name = "偏置时间")
    private Long fPlanOffsetTime;

    /**
     * 供应来源
     */
    @ApiModelProperty("供应来源")
    @TableField("f_supply_source_id")
    @Excel(name = "供应来源")
    private String fSupplySourceId;

    /**
     * MRP计算是否合并需求(0否1是)
     */
    @ApiModelProperty("MRP计算是否合并需求(0否1是)")
    @TableField("f_is_mrp_com_req")
    @Excel(name = "MRP计算是否合并需求(0否1是)")
    private String fIsMrpComReq;

    /**
     * MRP计算是否按单合并(0否1是)
     */
    @ApiModelProperty("MRP计算是否按单合并(0否1是)")
    @TableField("f_is_mrp_com_bill")
    @Excel(name = "MRP计算是否按单合并(0否1是)")
    private String fIsMrpComBill;

    /**
     * 订单进度分组
     */
    @ApiModelProperty("订单进度分组")
    @TableField("f_pro_sche_track_id")
    @Excel(name = "订单进度分组")
    private String fProScheTrackId;

    /**
     * 是否使用(1是0否)
     */
    @ApiModelProperty ( "是否使用(1是2否)" )
    @TableField (value = "is_used")
    @TableLogic
    @Excel ( name = "是否使用(1是2否)" )
    private Integer isUsed;
}
